package com.bpmn.flow.controller.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.util.List;
import java.util.Set;

/**
 * @author rain
 */
@Schema(description = "管理后台 - 流程示例的 BPMN 视图 Response VO")
@Data
public class BpmnModelViewVo {

    // ========== 基本信息 ==========

    @Schema(description = "流程实例信息")
    private InstanceVo processInstance;

    @Schema(description = "任务列表")
    private List<TaskVo> tasks;

    @Schema(description = "BPMN XML")
    private String bpmnXml;

    // ========== 进度信息 ==========
    // 只包括 UserTask
    @Schema(description = "进行中的活动节点编号集合")
    private Set<String> unfinishedTaskActivityIds;

    // 包括 UserTask、Gateway 等，不包括 SequenceFlow
    @Schema(description = "已经完成的活动节点编号集合")
    private Set<String> finishedTaskActivityIds;

    // 只包括 SequenceFlow
    @Schema(description = "已经完成的连线节点编号集合")
    private Set<String> finishedSequenceFlowActivityIds;

}
